import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 描述：
 * 作者：小陶不慌张
 * 文件：ListTest
 * 日期：2024/2/15 21:57
 */

public class ListTest {
    public static void main(String[] args) {

        ListTest test = new ListTest();
        ListNode head = test.createList();
        //================================================================
        //处理逻辑

        if(head==null){
            return ;
        }
        ListNode pre = head;
        ListNode cur = head.next;
        ListNode temp;
        int n=0;
        int i =0;
        while(cur!=null){
            temp=cur.next;
            cur.next = pre;
            pre=cur;
            cur = temp;
            n++;
        }
        n++;


        int[] arr=test.returnArray(pre,n);
        System.out.println("\n" + "arr:" + Arrays.toString(arr));
    }

    public ListNode createList(){
        //创造并初始化链表
        ListNode head = new ListNode(1);    //创建链表对象 l1 （对应有参 和 无参 构造方法）
        head.add(2);                //插入结点，打印
        head.add(3);
        head.print();
        return head;
    }

    /**
     * 将链表转换为数组
     * @param head 链表头节点
     * @param n 节点个数
     * @return 数组
     */
    public int[] returnArray(ListNode head,int n){

        int i =0;

        int[] arr = new int[n];
        while (i<n){
            arr[i]=head.val;
            head = head.next;
            i++;
        }
        return arr;
    }


    public int[] returnArray(ListNode head){
        int n=0;
        int i =0;
        while(head!=null){
            head=head.next;
            n++;
        }
        int[] arr = new int[n];
        while (i<n){
            arr[i]=head.val;
            head = head.next;
            i++;
        }
        return arr;
    }



}
